/*
 * function ListNode(x){
 *   this.val = x;
 *   this.next = null;
 * }
 */
/**
 * 代码中的类名、方法名、参数名已经指定，请勿修改，直接返回方法规定的值即可
 *
 * 
 * @param pHead ListNode类 
 * @param k int整型 
 * @return ListNode类
 */
 function FindKthToTail( pHead ,  k ) {
  // write code here
  var cur = pHead
  while(cur && k > 0){
    cur = cur.next
    k = k - 1
  }
  if(k > 0) return null // 如果k 大于数组的长度 那么退出的条件就是k还是大于0 的
  // 为什么不能是cur === null 如果k是数组的长度 那么正常退出也是cur=== null

  while(cur){
    cur = cur.next
    pHead = pHead.next
  }
  return pHead
}
module.exports = {
  FindKthToTail : FindKthToTail
};
/*
 * function ListNode(x){
 *   this.val = x;
 *   this.next = null;
 * }
 */
/**
 * 代码中的类名、方法名、参数名已经指定，请勿修改，直接返回方法规定的值即可
 *
 * 
 * @param pHead ListNode类 
 * @param k int整型 
 * @return ListNode类
 */
 function FindKthToTail( pHead ,  k ) {
  // write code here
  var pa = pHead
  for(let i = 0;i < k;i++){
    if(pa === null){ // 如果不是在最后一步走到null 就说明k大于链表长度 返回null 是在最后一步 就返回头结点
      return null
    }
    pa = pa.next
  }
  var res = pHead
  while(pa !== null){
    pa = pa.next
    res = res.next
  }
  return res
}
module.exports = {
  FindKthToTail : FindKthToTail
};